﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Windows;


namespace WpfPropertyGrid
{
    /// <summary>
    /// Contains a set of editor keys.
    /// 我们需要为这里附加一些内容，尤其是普通的.net对象
    /// 以及集合对象
    /// </summary>
    public static class EditorKeys
    {
        private static readonly Type ThisType = typeof(EditorKeys);
        private static readonly ComponentResourceKey _NamedColorEditorKey = new ComponentResourceKey(ThisType, "NamedColorEditor");
        private static readonly ComponentResourceKey _PasswordEditorKey = new ComponentResourceKey(ThisType, "PasswordEditor");
        private static readonly ComponentResourceKey _DefaultEditorKey = new ComponentResourceKey(ThisType, "DefaultEditor");
        private static readonly ComponentResourceKey _BooleanEditorKey = new ComponentResourceKey(ThisType, "BooleanEditor");
        private static readonly ComponentResourceKey _DoubleEditorKey = new ComponentResourceKey(ThisType, "DoubleEditor");
        private static readonly ComponentResourceKey _EnumEditorKey = new ComponentResourceKey(ThisType, "EnumEditor");
        private static readonly ComponentResourceKey _SliderEditorKey = new ComponentResourceKey(ThisType, "SliderEditor");
        private static readonly ComponentResourceKey _FontFamilyEditorKey = new ComponentResourceKey(ThisType, "FontFamilyEditor");
        private static readonly ComponentResourceKey _BrushEditorKey = new ComponentResourceKey(ThisType, "BrushEditor");
        private static readonly ComponentResourceKey _DefaultCategoryEditorKey = new ComponentResourceKey(ThisType, "DefaultCategoryEditor");
        private static readonly ComponentResourceKey _ComplexPropertyEditorKey = new ComponentResourceKey(ThisType, "ComplexPropertyEditor");



        //加入自定义的内容
        //我们先用ilist作接口测试

        private static readonly ComponentResourceKey _IListEditorKey = new ComponentResourceKey(ThisType, "IListEditor");
        public static ComponentResourceKey IListEditorKey { get { return _IListEditorKey; } }

        private static readonly ComponentResourceKey _IDictionaryEditorKey = new ComponentResourceKey(ThisType, "IDictionaryEditor");
        public static ComponentResourceKey IDictionaryEditorKey { get { return _IDictionaryEditorKey; } }






        /// <summary>
        /// Gets the NamedColor editor key.
        /// </summary>
        /// <value>The named color editor key.</value>
        public static ComponentResourceKey NamedColorEditorKey { get { return _NamedColorEditorKey; } }

        /// <summary>
        /// Gets the password editor key.
        /// </summary>
        /// <value>The password editor key.</value>
        public static ComponentResourceKey PasswordEditorKey { get { return _PasswordEditorKey; } }

        /// <summary>
        /// Gets the default editor key.
        /// </summary>
        /// <value>The default editor key.</value>
        public static ComponentResourceKey DefaultEditorKey { get { return _DefaultEditorKey; } }

        /// <summary>
        /// Gets the boolean editor key.
        /// </summary>
        /// <value>The boolean editor key.</value>
        public static ComponentResourceKey BooleanEditorKey { get { return _BooleanEditorKey; } }

        /// <summary>
        /// Gets the double editor key.
        /// </summary>
        /// <value>The double editor key.</value>
        public static ComponentResourceKey DoubleEditorKey { get { return _DoubleEditorKey; } }

        /// <summary>
        /// Gets the enum editor key.
        /// </summary>
        /// <value>The enum editor key.</value>
        public static ComponentResourceKey EnumEditorKey { get { return _EnumEditorKey; } }

        /// <summary>
        /// Gets the slider editor key.
        /// </summary>
        /// <value>The slider editor key.</value>
        public static ComponentResourceKey SliderEditorKey { get { return _SliderEditorKey; } }

        /// <summary>
        /// Gets the font family editor key.
        /// </summary>
        /// <value>The font family editor key.</value>
        public static ComponentResourceKey FontFamilyEditorKey { get { return _FontFamilyEditorKey; } }

        /// <summary>
        /// Gets the brush editor key.
        /// </summary>
        /// <value>The brush editor key.</value>
        public static ComponentResourceKey BrushEditorKey { get { return _BrushEditorKey; } }

        /// <summary>
        /// Gets the default category editor key.
        /// </summary>
        /// <value>The default category editor key.</value>
        public static ComponentResourceKey DefaultCategoryEditorKey { get { return _DefaultCategoryEditorKey; } }

        /// <summary>
        /// Gets the default complex property editor key.
        /// </summary>
        public static ComponentResourceKey ComplexPropertyEditorKey { get { return _ComplexPropertyEditorKey; } }
    }
}
